package com.test.design.gczms.method;

import com.test.design.gczms.common.ObjDto;
import com.test.design.gczms.observer.impl.Observer1;
import com.test.design.gczms.subject.impl.ConcreteSubject;

import java.util.List;

/**
 * @program: design-patternz
 * @description:
 * @author: <a href="mailto:zhengjiaming@gtmap.cn">zhengjiaming</a>
 * @create: 2025-03-11 15:00
 **/
// 在这个示例中，ConcreteSubject 充当主题（被观察者），ConcreteObserver 充当观察者。
// 主题维护一个观察者列表，并在状态变化时通知所有观察者。
// 当主题的状态发生变化时，所有观察者都会被通知并更新自己的状态。
public class ObserverPatternExample {
    public static void main(String[] args) {
        ConcreteSubject concreteSubject = new ConcreteSubject();
        Observer1 o = new Observer1();
        concreteSubject.addObserver(o);
        ObjDto objDto = new ObjDto();
        List<ObjDto> list = concreteSubject.notifyObservers(objDto);

    }
}